Full-rate distributed space-time codes for cooperative communications

ABSTRACT

A full-rate distributed space-time (ST) code design is provided for amplify-and-forward cooperative wireless channels. A signal space diversity technique is employed at the source node and a unique signature vector at each relay node. The distributed space-time (ST) codes can achieve full cooperative diversity and full rate. The achievable diversity gain is M+1, where M is the number of relay nodes. Optimal power allocation can be used to maximize the coding gain under a total power constraint.

TECHNICAL FIELD

The subject disclosure relates generally to wireless communications systems, and more particularly to space-time codes for cooperative wireless communications.

BACKGROUND OF THE INVENTION

Cooperative diversity has recently received wide recognition as a simple way to improve system error rate performance and capacity by forming virtual antenna arrays. For amplify-and-forward (AF) cooperative or relay networks, a number of distributed space-time (ST) coding schemes have been developed. Most of these coding schemes can achieve the maximum cooperative diversity gain in cooperative networks but at the cost of reduced symbol rate.

A non-orthogonal AF (NAF) scheme was proposed by allowing the source to continue transmission over the whole duration of the cooperation frame while the cooperative partner listens and relays. The NAF scheme was later proved to achieve the optimal diversity-multiplexing tradeoff (DMT) for the single-relay scenario. However, it is desirable to achieve optimal diversity multiplexing for multiple relays.

For the general case of arbitrary number of relay nodes, the best known DMT has been recently presented with a so-called naive slotted AF cooperative scheme. To realize a high symbol rate while guaranteeing full diversity, a few coding schemes were proposed. Based on one-by-one relay transmission, some existing optimal ST codes were applied to half-duplex NAF channels. However, one-by one relay transmissions reduces the symbol rate that can be transmitted.

The above-described deficiencies of cooperative wireless network communications are merely intended to provide an overview of some of the problems of today's cooperative wireless networks, and are not intended to be exhaustive. Other problems with the state of the art may become further apparent upon review of the description of various non-limiting embodiments that follows.

SUMMARY OF THE INVENTION

The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is intended to neither identify key or critical elements of the invention nor delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented later.

A full-rate cooperative diversity scheme for half-duplex NAF wireless channels is provided. Unlike relay transmission schemes based on multiple cooperation frames and round-robin relaying, various embodiments employ a block transmission via one cooperation frame for an arbitrary number of relay nodes. In particular, the relay nodes do not need to take turns to work in a predesigned order but operate simultaneously. Thus, cooperative transmission is simplified. In order to implement this block transmission, a distributed space time (ST) code design employs a signal space diversity technique at the source node and multiplies a unique signature vector at each relay node. The distributed ST codes can achieve full diversity and a full rate of 1. Moreover, an optimal power allocation can be used to maximize coding gain.

To the accomplishment of the foregoing and related ends, certain illustrative aspects of the invention are described herein in connection with the following description and the annexed drawings. These aspects are indicative, however, of but a few of the various ways in which the principles of the invention may be employed and the present invention is intended to include all such aspects and their equivalents. Other advantages and novel features of the invention may become apparent from the following detailed description of the invention when considered in conjunction with the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary cooperative wireless communication network in which the aspects can be implemented.

FIG. 2 is a diagram of transmissions in a cooperative wireless communication according to one aspect.

FIG. 3 illustrates an example non-orthogonal amplify and forward protocol with block transmission in one cooperative frame according to one aspect.

FIG. 4 is a graph of symbol error rate versus signal to noise ration (SNR) in decibels for various numbers of relay nodes.

FIG. 5 is a graph of symbol error rate versus SNR for various power allocation schemes.

FIG. 6 is a block diagram of a source node in accordance with an aspect of the present invention.

FIG. 7 is a block diagram of a relay node in accordance with an aspect of the present invention.

FIG. 8 is a block diagram of a destination node in accordance with an aspect of the present invention.

FIG. 9 is a flowchart of a method of a source node in accordance with an aspect of the present invention.

FIG. 10 is a flowchart of a method of a relay node in accordance with an aspect of the present invention.

FIG. 11 is a flowchart of a method of a destination node in accordance with an aspect of the present invention.

FIG. 12 is a block diagram representing an exemplary non-limiting computing system or operating environment in which the present invention may be implemented.

DETAILED DESCRIPTION OF THE INVENTION

The present invention is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It may be evident, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the present invention.

Referring to FIG. 1, an exemplary cooperative network environment suitable for implementing aspects described herein is shown. One will appreciate that the block diagram is not to scale and that the various nodes can be arranged in space so that they are communicatively coupled together.

The network comprises a source node 102, one or more relay nodes (104 and 106) and a destination node 108. For the sake of clarity, nodes are described herein as being of a particular type: a source node, a relay node, or a destination node. However, one skilled in the art will appreciate that a node can act as any of the types of nodes depend on the transmission that is currently occurring on the network. The source node 104 is the source of the data transmission and transmits data to the relay nodes (104, 106), as well as the destination node 108. In at least some embodiments, the source 102 is connected to other systems 110 (e.g., a LAN, the Internet, business systems) and receives data to transmit from there other systems. The one or more relay nodes 104 and 106 amplify and forward signals from the source node 102 to the destination node 108 The destination node can also be connected to other system 112 (e.g., a LAN, the Internet, or business systems).

One will appreciate that a cooperative wireless network can have one or more nodes that are not involved in a transmission of a block of data. For the sake of clarity, these nodes are not shown and described herein even though they be present in a cooperative network implementing aspects described herein.

Referring to FIG. 2, a cooperative wireless network comprises an information source node S 202, M relay nodes (204, 206, 208) R_(i)(i=1, . . . , M) and a destination node D 210. Although only a few relay nodes are shown for the purpose of clarity, one will appreciate that there can be any number of relay nodes. The nodes can be equipped with a single antenna and can operate in half-duplex mode. In a first time slot 200, S 202 broadcasts information to all other nodes (204, 206, 208, 210) including the destination node D 210. In a second time slot 250, S 202 continues the transmission to D while some or all of the relay nodes (204, 206, 208) simultaneously send the signals received in the previous time slot to D 210. In addition, in at least some scenarios, the data transmitted by S 202 in the second time slot is transmitted to the relay nodes for relaying at a third time slot (not shown). The channels S→R_(i), R_(i)→D and S→D are assumed to experience flat fading and the complex channel gains are denoted by f_(i), g_(i) and h, respectively. Without loss of generality, the additive white Gaussian noise (AWGN) of all the channels is assumed to have an equal variance N₀ and the channels f_(i), g_(i), and h are assumed to be perfectly known at the receiver only.

Referring to FIG. 3, one cooperation frame according to one aspect is illustrated. The solid lines refer to a signal being transmitted whereas dotted lines indicate the signal received. At the source node, a signal vector S of 2N information symbols is first encoded as a codeword X of length 2N. Let X=[X₁ ^(T) X₂ ^(T)]^(T), where X₁ and X₂ are both of length N column vectors and the superscript T denotes a transpose operation. X₁ and X₂ are sent from the source at the first time slot 300 and the second time slot 350, respectively. In each time slot, N symbol intervals are transmitted.

In the first time slot, the received signals at the ith relay node (e.g., Relay 1 304 and Relay M 306) and the destination node 308 are given by,

Y _(i)=√{square root over (P₁)}f _(i) X ₁ +N _(i)  (Equation 1)

Z ₁=√{square root over (P₁)}hX ₁ +W ₁  (Equation 2)

respectively, where Y_(i) and Z₁ are both column vectors of length-N, P₁ denotes the transmit power of the source node, N_(i) and W₁ are both zero-mean complex Gaussian noise vectors with covariance matrix N₀I_(N). I_(N) denotes the N×N identity matrix. At the ith relay node, the received signal vector Y_(i) is scaled by α and component-wisely multiplied with a unique signature vector b_(i) into

A _(i)=α·(b _(i) ∘Y _(i))  (Equation 3)

where A_(i) is the length-N column vector, ∘ denotes a component-wise product (e.g., Hadamard product), b_(i) is the signature vector of length N, and α denotes the power scaling factor to ensure that the average transmit power of any relay node is P₂. α can be calculated using

$\alpha = {\sqrt{\frac{P_{2}}{N_{0} + P_{1}}}.}$

In the second time slot, the scaled signal A_(i) is sent to the destination node from all relay nodes simultaneously. Meanwhile, the signal X₂ is sent from the source node to D. Hence, the received signal at the destination node is

$\begin{matrix} {{Z_{2} = {{\sqrt{P_{3}}h\; X_{2}} + {\sum\limits_{i = 1}^{M}{g_{i}A_{i}}} + W_{2}}},} & \left( {{Equation}\mspace{20mu} 4} \right) \end{matrix}$

where Z₂ is the vector of length-N, P₃ denotes the transmit power of the source node in the second time slot of each frame and W₂ is a zero-mean complex Gaussian noise vector with covariance matrix N₀I_(N). By substituting Equation 3 and Equation 1 into 4,

$\begin{matrix} {{Z_{2} = {{\sqrt{P_{3}}h\; X_{2}} + {\alpha \sqrt{P_{1}}{\sum\limits_{i = 1}^{M}{f_{i}{g_{i}\left( {b_{i} \cdot X_{1}} \right)}}}} + {\overset{\sim}{W}}_{2}}},{{where}{{\overset{\sim}{W}}_{2} = {{\alpha {\sum\limits_{i = 1}^{M}{g_{i}\left( {b_{i} \circ N_{i}} \right)}}} + {W_{2}.}}}}} & \left( {{Euqation}\mspace{20mu} 5} \right) \end{matrix}$

For a large value of M, Σ_(i=1) ^(M)|g_(i)|²≈M with a high probability. As a result, E[{tilde over (W)}₂{tilde over (W)}₂ ^(H)]≈N₀(1+Mα²)I_(N) where the superscript ^(H) denotes the complex transpose conjugate and E[·] represents the expectation operation.

At the destination node, Z₁ in Equation 2 and Z₂ in Equation 5 are further normalized so that the noise terms have zero-mean and unit variance. The normalized signals are then given by

$\begin{matrix} {{\overset{\sim}{Z}}_{1} = {{\sqrt{c_{1}\rho}h\; X_{1}} + {\overset{\sim}{W}}_{1}}} & \left( {{Equation}\mspace{20mu} 6} \right) \\ {{{\overset{\sim}{Z}}_{2} = {{\sqrt{c_{3}\rho}h\; X_{2}} + {\sqrt{c_{2}\rho}{\sum\limits_{i = 1}^{M}{f_{i}{g_{i}\left( {b_{i} \cdot X_{1}} \right)}}}} + \overset{\sim}{V}}},} & \left( {{Equation}\mspace{20mu} 7} \right) \end{matrix}$

where {tilde over (W)}₁ and {tilde over (V)} are both Gaussian noise vector composed of zero-mean unit-variance elements.

$\rho = \frac{P}{N_{0}}$

denotes the SNR system and P denotes the total transmit power, P=P₁+MP₂+P₃. Finally,

$\begin{matrix} {{c_{1} = \frac{P_{1}}{P}},} & \left( {{Equation}\mspace{20mu} 8} \right) \\ {{c_{2} = \frac{P_{1}P_{2}}{P\left( {P_{1} + {M\; P_{2}} + N_{0}} \right)}},} & \left( {{Equation}\mspace{20mu} 9} \right) \\ {c_{3} = {\frac{P_{3}\left( {P_{1} + N_{0}} \right)}{P\left( {P_{1} + {M\; P_{2}} + N_{0}} \right)}.}} & \left( {{Equation}\mspace{20mu} 10} \right) \end{matrix}$

c₁, c₂ and c₃ are all in the interval (0, 1).

By stacking the two received signals {tilde over (Z)}₁ and {tilde over (Z)}₂ into a vector as R=[{tilde over (Z)}₁ ^(T) {tilde over (Z)}₂ ^(T)]^(T), then from Equations 6 and 7

R=√{square root over (ρ)}CH+Ñ  (Equation 11)

where the channel H is a vector of length (M+1) given by

H=[h f₁g₁ . . . f_(M)g_(M)]^(T)  (Equation 12)

the 2N×(M+1) matrix C is given by

$\begin{matrix} {C = \begin{bmatrix} {\sqrt{c_{1}}X_{1}} & \; \\ {\sqrt{c_{3}}X_{2}} & {\sqrt{c_{2}}\mspace{11mu} {diag}\mspace{11mu} \left( X_{1} \right)B} \end{bmatrix}} & \left( {{Equation}\mspace{14mu} 13} \right) \end{matrix}$

with B=[b₁ . . . b_(M)] and the noise term Ñ is given by Ñ=[{tilde over (W)}₁ ^(T) {tilde over (V)}^(T)]^(T).

The matrix C in Equation 13 can be viewed as an ST code matrix, where the codeword X=[X₁ ^(T) X₂ ^(T)]^(T) is sent over two time slots and M+1 distributed nodes. Specifically, in the first time slot, X₁, which is the first half of X, can be sent from the source node. Then, in the second time slot, X₂, which is the second half of X, can be sent from the source node while (X₁ ∘b_(i)) is sent from the ith relay node for i=1, . . . , M.

Assume that the channel state information H is perfectly known at the destination node. If the signal vector X is sent over one cooperation frame but the decoder favors a different signal vector {circumflex over (X)}, then the pairwise error probability (PEP) is given by

$\begin{matrix} {{{P\left( \left. C\rightarrow\hat{C} \right. \middle| H \right)} = {Q\left( \sqrt{\frac{\rho}{2}{{C_{\Delta}H}}_{F}^{2}} \right)}},} & \left( {{Equation}\mspace{14mu} 14} \right) \end{matrix}$

where C and Ĉ are related to X and {circumflex over (X)} according to Equation 13, respectively, and C_(Δ)=C−Ĉ. Furthermore, ∥·∥_(F) denotes the Frobenius norm and

${Q(x)} = {\frac{1}{\sqrt{2\pi}}{\int_{x}^{\infty}{^{- \frac{t^{2}}{2}}{{t}.}}}}$

Using the bound

${{Q(x)} < ^{- \frac{x^{2}}{2}}},$

${P\left( \left. C\rightarrow\hat{C} \right. \middle| H \right)} \leq {{\exp \left( {{- \frac{\rho}{4}}H^{H}C_{\Delta}^{H}C_{\Delta}H} \right)}.}$

H can be rewritten in Equation 12 as

H={tilde over (f)}{tilde over (g)},

where

${\overset{\sim}{f} = {{diag}\; \begin{pmatrix} 1 & f_{1} & \ldots & f_{M} \end{pmatrix}}},{\overset{\sim}{g} = {\begin{bmatrix} h & g_{1} & \ldots & g_{M} \end{bmatrix}^{T}.}}$

Consequently, the average PEP is given by

$\begin{matrix} {{P\left( C\rightarrow\hat{C} \right)} \leq {E_{\overset{\sim}{f},\overset{\sim}{g}}\left\lbrack {\exp \left( {{- \frac{\rho}{4}}{\overset{\sim}{g}}^{H}{\overset{\sim}{f}}^{H}C_{\Delta}^{H}C_{\Delta}\overset{\sim}{f}\overset{\sim}{g}} \right)} \right\rbrack}} & \left( {{Equation}\mspace{20mu} 15} \right) \end{matrix}$

where E_(t)[·] denotes the expectation operation over the random variable t. Note that the elements of {tilde over (g)} are independent and identically distributed (i.i.d.) with a complex Gaussian distribution. By taking the average of Equation 15 over random variables {tilde over (g)},

${{P\left( C\rightarrow\hat{C} \right)} \leq {E_{\overset{\sim}{f}}\left\lbrack \frac{1}{\det \; \left( {I_{M + 1} + {\frac{\rho}{4}{\overset{\sim}{f}}^{H}C_{\Delta}^{H}C_{\Delta}\overset{\sim}{f}}} \right)} \right\rbrack}} = {\left( {1 + {\frac{\rho}{4}\lambda_{1}}} \right)^{- 1}{E_{\overset{\sim}{f}}\left\lbrack \frac{1}{\prod\limits_{j = 2}^{r}\left( {1 + {\frac{\rho}{4}\lambda_{j}{f_{j - 1}}^{2}}} \right)} \right\rbrack}}$

where r and λ_(j) denote the rank and the jth eigenvalue of the Hermitian matrix C_(Δ) ^(H)C_(Δ), respectively. Since |f_(j−1)|², ∀j are i.i.d. with an exponential distribution and that

${\int_{0}^{\infty}{\left( {1 + {a\; x}} \right)^{- 1}^{- x}{x}}} < \frac{2\; \log \; (a)}{a}$

when α is large, it follows that

$\begin{matrix} {{{P\left( C\rightarrow\hat{C} \right)} < {\overset{\sim}{c}\frac{1}{\rho}\left( \frac{\log \; \rho}{\rho} \right)^{r - 1}{\prod\limits_{j = 1}^{r}\frac{1}{\lambda_{j}}}}}{{\bullet \; \overset{\sim}{c}\rho^{- r}{\prod\limits_{j = 1}^{r}\frac{1}{\lambda_{j}}}},\left. {{as}\mspace{14mu} \rho}\rightarrow\infty \right.}} & \left( {{Equation}\mspace{20mu} 16} \right) \end{matrix}$

where {tilde over (c)}=2^(3r−1). Therefore, the code design criteria for the half-duplex NAF cooperative channels are as follows:

-   -   Rank Criterion Maximize the diversity gain

r=rank(C−Ĉ)  (Equation 17)

-   -   over all pairs of distinct codewords C and Ĉ     -   Product Criterion Maximize the coding gain

$\begin{matrix} {\prod\limits_{j = 1}^{r}\lambda_{j}} & \left( {{Equation}\mspace{20mu} 18} \right) \end{matrix}$

-   -   -   over all pairs of distinct codewords C and Ĉ.

Because C in Equation 13 is a matrix of size 2N×(M+1), its rank is at most min(2N, M+1). If the length of the codeword X is larger than M+1, then the achievable maximum diversity gain of the cooperative scheme is M+1 as shown in Equation 17.

In order to achieve the full diversity, the distributed ST code C can be designed as follows.

Theorem 1: For the distributed ST code matrix C in (13), if X and B satisfy the following conditions:

Condition 1. The length-2N column vector (X-{circumflex over (X)}) has no zero entries for any pair of distinct information vectors S and Ŝ; and

Condition 2. B has full rank,

then the distributed ST code C can achieve a diversity gain of min(N, M)+1. If N≧M, the full diversity of M+1 is achieved.

Proof. By substituting Conditions 1 and 2 into Equation 13, the matrix C-Ĉ achieves the full rank of 1+min(M, N). Based on Equation 17, the full diversity gain is achieved. For N≧M, the maximum diversity gain is M+1.

Next, an explicit design of full-rate full-diversity distributed ST codes that can satisfy Conditions 1 and 2 is provided.

The vector X is designed as follows:

X=ΘS  (Equation 19)

where S is a block of 2N independent information symbols, which are selected from QAM, and Θ is a 2N×2N matrix. N=2^(┌ log) ² ^(M┐) is chosen where ┌x┐ denotes the ceiling operation of x and represents the smallest integer that is larger than x. If N≧M and N is a power of 2, then the design of Θ is given by

Θ=F _(2N) ^(H)diag(1 θ . . . θ^(2N−1)),  (Equation 20)

where F_(2N) is a 2N×2N Discreate Fourier Transform (DFT) matrix and θ=e^(j2π/(8N)). One property of the design of Θ is that there exist no zero entries in the length-2N vector (X-{circumflex over (X)}) in Equation 19 for any non-zero vector (S-Ŝ). This is referred to signal space diversity or modulation diversity.

The matrix B is designed as

B=G  (Equation 21)

where G can be any N×M matrix with full rank, such as a submatrix of a Hadamard or DFT matrix of size N×N where N=2^(┌ log) ² ^(M┐.)

Note that the design of X in Equation 19 and B in Equation 21 can satisfy Conditions 1 and 2 in Theorem 1. Hence, a diversity gain of min(N,M)+1 is achieved. For instance, if N=2^(┌ log) ² ^(M┐)≧M, then a diversity gain of M+1 is achieved.

The total number of 2N independent information symbols S are encoded into X and then sent via relay nodes to the destination node in 2N symbol intervals. Therefore, full-rate 1 is achieved irrespective of the value of N.

Based on Equation 13, Equation 11 can be rewritten as

$R = {{\sqrt{\rho}\begin{bmatrix} {\sqrt{c_{1}}X_{1}h} \\ {{\sqrt{c_{3}}X_{2}h} + {\sqrt{c_{2}}\mspace{11mu} {diag}\mspace{11mu} \left( X_{1} \right){\sum\limits_{i = 1}^{M}{b_{i}f_{i}g_{i}}}}} \end{bmatrix}} + {\overset{\sim}{N}.}}$

Denote Ψ=Σ_(i=1) ^(M)b_(i)f_(i)g_(i). Using Equation 19,

Let

$\begin{matrix} {R = {{{{\sqrt{\rho}\begin{bmatrix} {\sqrt{c_{1}}h\; I_{N}} & \; \\ {\sqrt{c_{2}}\mspace{14mu} {diag}\; (\Psi)} & {\sqrt{c_{3}}h\; I_{N}} \end{bmatrix}}\Theta \; S} + {\overset{\sim}{N}.\mathrm{\Upsilon}}} = {{\sqrt{\rho}\begin{bmatrix} {\sqrt{c_{1}}h\; I_{N}} & \; \\ {\sqrt{c_{2}}\mspace{14mu} {diag}\mspace{11mu} (\Psi)} & {\sqrt{c_{3}}h\; I_{N}} \end{bmatrix}}{\Theta.}}}} & \left( {{Equation}\mspace{20mu} 22} \right) \end{matrix}$

Then, Equation 22 is equivalent to

${\begin{bmatrix} {\Re (R)} \\ {(R)} \end{bmatrix} = {{\begin{bmatrix} {\Re (\mathrm{\Upsilon})} & {- {(\mathrm{\Upsilon})}} \\ {(\mathrm{\Upsilon})} & {\Re (\mathrm{\Upsilon})} \end{bmatrix}\begin{bmatrix} {\Re (S)} \\ {(S)} \end{bmatrix}} + \begin{bmatrix} {\Re \left( \overset{\sim}{N} \right)} \\ {\left( \overset{\sim}{N} \right)} \end{bmatrix}}},$

where

and

denote the real part and imaginary part, respectively. The received signal vector is now a linear transform of the input signal vector S which is comprised of QAM symbols. If all of the channels are perfectly known at the destination node, then a sphere decoder can be used to implement maximum likelihood (ML) decoding efficiently.

It can be seen from Equation 13 that if the design of X is fixed, the rank of C would not be changed for any nonzero c₁, c₂ and c₃. Thus, the diversity gain will not be changed for any power allocation scheme {P₁, P₂, P₃} However, the determinant of C_(Δ) ^(H)C_(Δ) will be varied for different power allocations. From Equation 18, the maximum determinant of C_(Δ) ^(H)C_(Δ) is desired. Next, an optimal power allocation scheme under the total power constraint P satisfies the Product Criterion.

Let

${\zeta = \frac{c_{1}}{c_{3}}},$

then Equation 13 can be rewritten as

$\begin{matrix} {{C = {D\begin{bmatrix} \sqrt{c_{3}} & \; \\ \; & {\sqrt{c_{2}}I_{M}} \end{bmatrix}}},{where}} & \left( {{Equation}\mspace{20mu} 23} \right) \\ {D = {\begin{bmatrix} {\sqrt{\zeta}X_{1}} & \; \\ X_{2} & {{diag}\; \left( X_{1} \right)B} \end{bmatrix}.}} & \left( {{Equation}\mspace{20mu} 24} \right) \end{matrix}$

Let D_(Δ)=D-{circumflex over (D)}, where {circumflex over (D)}has the same form as D but is related to {circumflex over (X)} Using the code design X and B in, D_(Δ) ^(H)D_(Δ) has full rank. Let σ_(j) denote the jth eigenvalue of D_(Δ) ^(H)D_(Δ) for j=1, . . . , M+1. Then, based on Equation 23,

$\begin{matrix} {{\det \; \left( {C_{\Delta}^{H}C_{\Delta}} \right)} = {\det \; \left( {\begin{bmatrix} \sqrt{c_{3}} & \; \\ \; & {\sqrt{c_{2}}I_{M}} \end{bmatrix}^{H}D_{\Delta}^{H}{D_{\Delta}\begin{bmatrix} \sqrt{c_{3}} & \; \\ \; & {\sqrt{c_{2}}I_{M}} \end{bmatrix}}} \right)}} \\ {= {c_{3}c_{2}^{M}{\prod\limits_{j = 1}^{M + 1}{\sigma_{j}.}}}} \end{matrix}$

Therefore, searching for the optimal power allocation policy to satisfy the Product Criterion is equivalent to the following optimization problem:

$\begin{matrix} {{{{Maximize}\mspace{14mu} c_{3}c_{2}^{M}{\prod\limits_{j = 1}^{M + 1}\sigma_{j}}},{\forall\left\{ {P_{1},P_{2},P_{3}} \right\}}}{{{{{subject}\mspace{14mu} {to}\mspace{14mu} P_{1}} + {M\; P_{2}} + P_{3}} = P},}} & \left( {{Equation}\mspace{20mu} 25} \right) \end{matrix}$

where c₂ and c₃ are given by Equations 9 and 10, respectively.

The optimal solution to the problem in Equation 25 is intractable because Π_(j=1) ^(M+1)σ_(j) depends on the difference between two codewords X and {circumflex over (X)} as well as ζ, and {circumflex over (X)} cannot be known at transmitter. However, a suboptimal solution to the problem in Equation 25 can be given as follows.

Theorem 2: Given a total power constraint P=P₁+MP₂+P₃ and a fixed ζ, the optimal power allocation scheme {P*₁, P*₂, P*₃} for maximizing the coding gain Equation 18 at high SNR,

${\rho \left( {\rho = \frac{P}{N_{0}}} \right)},$

is given by

$\begin{matrix} {{P_{1}^{*} = {\frac{1 + M}{1 + {2M}}\frac{\zeta}{1 + \zeta}P}},} & \left( {{Equation}\mspace{20mu} 26} \right) \\ {{P_{2}^{*} = {\frac{1}{1 + {2M}}\frac{\zeta}{1 + \zeta}P}},} & \left( {{Equation}\mspace{20mu} 27} \right) \\ {P_{3}^{*} = {\frac{1}{1 + \zeta}{P.}}} & \left( {{Equation}\mspace{20mu} 28} \right) \end{matrix}$

Proof. For a fixed ζ, Π_(j=1) ^(M+1)σ_(j) will be independent of any power allocation scheme. Hence, the optimization problem in Equation 25 can be transformed into the following one:

$\begin{matrix} {{{{Maximize}\mspace{14mu} c_{3}c_{2}^{M}{\prod\limits_{j = 1}^{M + 1}\sigma_{j}}},{\forall\left\{ {P_{1},P_{2},P_{3}} \right\}}}{{{{subject}\mspace{14mu} {to}\mspace{14mu} P_{1}} + {M\; P_{2}} + P_{3}} = {{P\mspace{14mu} {and}\mspace{14mu} \zeta} = {\frac{c_{1}}{c_{3}}.}}}} & \left( {{Equation}\mspace{20mu} 29} \right) \end{matrix}$

The total power constraint P₁+MP₂+P₃=P can be rewritten as

$\begin{matrix} {{\frac{P_{1}}{P} + {M\; \frac{P_{2}}{P}} + \frac{P_{3}}{P}} = 1.} & \left( {{Equation}\mspace{20mu} 30} \right) \end{matrix}$

Using Equations 8-10 and ζ=c₁/c₃,

$\begin{matrix} {{\frac{P_{1}}{P} = c_{1}},} & \left( {{Equation}\mspace{20mu} 31} \right) \\ {{\frac{P_{2}}{P} = \frac{c_{1} + \frac{1}{\rho}}{\frac{c_{1}}{c_{2}} - M}},} & \left( {{Equation}\mspace{20mu} 32} \right) \\ {{\frac{P_{3}}{P} = \frac{1 + \frac{1}{\rho}}{1 + \zeta + \frac{\zeta}{c_{1}\rho}}},} & \left( {{Equation}\mspace{20mu} 33} \right) \end{matrix}$

where again

$\rho = {\frac{P}{N_{0}}.}$

By substituting Equations 31-33 into 30, the optimization problem in Equation 29 can be simplified into

$\begin{matrix} {{{{Maximize}\mspace{14mu} c_{1}c_{2}^{M}},{\forall c_{1}},{c_{2} \in \left( {0,1} \right)}}{{{{subject}\mspace{14mu} {to}\mspace{14mu} c_{1}} + \frac{c_{1} + \frac{1}{\rho}}{\frac{c_{1}}{M\; c_{2}} - 1} + \frac{1 + \frac{1}{\rho}}{1 + \zeta + \frac{\zeta}{c_{1}\rho}}} = 1}} & \left( {{Equation}\mspace{20mu} 34} \right) \end{matrix}$

for given ρ and ζ. From Equation 34, the optimal values c*₁ and c*₂ can be evaluated. By substituting c*₁ and c*₂ into Equations 31-33, the optimal power allocation {P*₁, P*₂, P*₃} are then obtained.

For a high SNR, ρ, Equation 34 can be further written as

$\begin{matrix} {{{{Maximize}\mspace{14mu} c_{1}c_{2}^{M}},{\forall c_{1}},{c_{2} \in \left( {0,1} \right)}}{{{subject}\mspace{14mu} {to}\mspace{14mu} c_{2}} = {\frac{c_{1}}{M}{\left( {1 - {c_{1}\left( {1 + \frac{1}{\zeta}} \right)}} \right).}}}} & \left( {{Equation}\mspace{20mu} 35} \right) \end{matrix}$

The optimal solutions c*₁, c*₂ and c*₃ to the problem in Equation 35 are given by

$\begin{matrix} {{c_{1}^{*} = {\frac{1 + M}{1 + {2M}}\frac{\zeta}{1 + \zeta}}},{c_{2}^{*} = \frac{c_{1}^{*}}{1 + {2M}}},{c_{3}^{*} = {\frac{c_{1}^{*}}{\zeta}.}}} & {\left( {{Equation}\mspace{14mu} 36} \right)\;} \end{matrix}$

Therefore, for any given ζ and P, the optimal power allocation scheme {P*₁, P*₂, P*₃} is given by Equations 26-28.

In the case of optimal power allocation, observe that

$\begin{matrix} {{\frac{P_{1}^{*}}{M\; P_{2}^{*}} = {1 + \frac{1}{M}}},} & \left( {{Equation}\mspace{20mu} 37} \right) \\ {\frac{P_{3}^{*}}{P} = {\frac{1}{1 + \zeta}.}} & \left( {{Equation}\mspace{20mu} 38} \right) \end{matrix}$

The ratio between the transmit power P*₁ at the source node and the total transmit power MP*₂ at all relay nodes is

$1 + \frac{1}{M}$

is given in Equation 37. Equation 38 indicates that transmit power P*₃ at the source node in the second time slot consumes only

$\frac{1}{1 + \zeta}$

of the total power P. Then, ζ can be viewed as the fraction of the total power allocated to P₃.

The flat Rayleigh fading channels for all channels, S→R, R→D and S→D, are considered. The source information bits are firstly modulated into 4QAM signals and then precoded with a rotation matrix Θ into the codeword X of length of 2N, as shown in Equation 19. At each relay node, the received signal is component-wise multiplied with a unique column of B, which is a N×M matrix composed of the first M columns of a Hadamard matrix of size N×N. At the destination node, a sphere decoder is used.

Referring to FIG. 4, symbol error rate (SER) performance curves of a simulated system according to one aspect is shown with respect to system SNR,

$\rho = \frac{P}{N_{0}}$

at P₃/P=0.5, (i.e., ζ=1), for one 402, two 404 and four 406 relay nodes, respectively. The optimal power allocation schemes {P₁*,P₂*,P₃*} are used for all the simulated cases. From Theorem 2, the optimal power allocation schemes for M=1, 2 and 4 are given by

$\left\{ {\frac{P}{3},\frac{P}{6},\frac{P}{2}} \right\},{\left\{ {\frac{3P}{10},\frac{P}{10},\frac{P}{2}} \right\} \mspace{14mu} {and}\mspace{14mu} \left\{ {\frac{5P}{18},\frac{P}{18},\frac{P}{2}} \right\}},$

respectively. FIG. 4 illustrates that performance is improved when the number of relay nodes is increased. In particular, diversity enhancement is increased with an increase in the number of relay nodes.

Referring to FIG. 5, different power allocation schemes are compared for given P₃/P=0.5 with two relay nodes. The following three power allocation schemes {P₁, P₂, P₃} are used:

${{Scheme}\text{-}1\text{:}\mspace{11mu} \left\{ {\frac{P}{6},\frac{P}{6},\frac{P}{2}} \right\}};$ ${{Scheme}\text{-}2\text{:}\mspace{11mu} \left\{ {\frac{P}{4},\frac{P}{8},\frac{P}{2}} \right\}};$ ${Scheme}\text{-}3\text{:}\mspace{11mu} \left\{ {\frac{3P}{10},\frac{P}{10},\frac{P}{2}} \right\} \mspace{11mu} {\left( {{optimal}\mspace{14mu} {power}\mspace{14mu} {allocation}} \right).}$

The illustrated graph comprises curves for Scheme 1 502, Scheme 2 504, and Scheme 3 506. Scheme-3 is the optimal power allocation scheme for M=2 and ζ=1. The optimal power allocation scheme gives the best error rate performance. The three simulated curves are shown to have the same slope. This is because different power allocation schemes do not change the diversity gain (the slope of the SER-SNR curve in log-log scale). However, the coding gain can be improved by optimizing power allocation among all the nodes.

FIGS. 6-8 illustrate components of each type of node according to one embodiment. Referring to FIG. 6, a system 600 of a source node is illustrated according to one embodiment. A signal transmitting component 602 transmits signals to the relay nodes as well as the destination node. The codeword creation component 606 takes a block of data to be transmitted and determines a codeword to transmit via the signal transmitting component 602. In at least some embodiments, a matrix Θ 608 can be used by the codeword creation component 606, such as by multiplying the block of data with the matrix Θ 608 to determine the keyword. In addition, the power management component 604 determines the optimal power allocation for a transmission and informs the signal transmitting component 602 to transmit at that determined level.

Referring to FIG. 7, a system 700 of a relay node is illustrated according to one embodiment. A signal receiving component 706 receives a signal from the source node. A component-wise multiplication component 702 determines a new data vector to transmit based on a function of that received signal and a signature vector associated with the relay node. Matrix B 708, which is known to all the relay nodes, can be used to determine the signature vector associated with the relay node.

The power management component determines optimal power allocation and amplifies the determined data vector accordingly before transmission by the signal transmitting component 708. Signal transmitting component 708 transmits the amplified signal from the relay node to the destination node simultaneously with the other relay nodes. In at least some embodiments, it also transmits simultaneously with the second portion of the block from the source node.

Referring to FIG. 8, a system 800 of a destination node is illustrated according to one embodiment. A signal receiving component 802 receives signals from one or more relay nodes, as well as the source node. The maximum likelihood decoding component 804 decodes the received signal using maximum likelihood decoding. In one embodiment, this decoding is implemented using a sphere decoder. In at least some embodiments, there is an interface to other systems 806. This interface 806 can receive indications of the decoded data from the maximum likelihood decoding component 804.

Turning briefly to FIGS. 9-11, methodologies that may be implemented in accordance with the present invention are illustrated. While, for purposes of simplicity of explanation, the methodologies are shown and described as a series of blocks, it is to be understood and appreciated that the present invention is not limited by the order of the blocks, as some blocks may, in accordance with the present invention, occur in different orders and/or concurrently with other blocks from that shown and described herein. Moreover, not all illustrated blocks may be required to implement the methodologies in accordance with the present invention. Furthermore, for the sake of clarity, the methods illustrate a transmission of a single portion of block of data; however, one will appreciate that the methods can be performed multiple times to transmit multiple blocks of data.

Referring to FIG. 9, a method 900 of a source node according to one embodiment is illustrated. At 905, an indication of a block message to send is received. At 910, a codeword is created of 2N symbols to transmit. At 915, at least a portion of the codeword is transmitted to the destination node and one or more relay nodes. The other portion, if any, can be transmitted in a consecutive time slot simultaneously with the retransmission of the first part by the relay nodes.

Turning to FIG. 10, a method 1000 of a source node according to one embodiment is illustrated. At 1005, a signal is received from the source node. At 1010, the power level to retransmit the signal at is determined. At 1015, a new data vector is determined based on the power level (e.g., amplifying the signal by a factor), the received signal and a signature vector associated with the relay node. In at least one embodiment, the determination is based at least in part on component-wise multiplication of the received signal with the signature vector. At 1020, the determined data vector is retransmitted simultaneously with the other relays, as well as in at least some embodiments with the second portion of the signal from the source node.

Referring to FIG. 11, a method 1100 of a destination node according to one embodiment is illustrated. At 1105, the destination node receives a signal from the relay nodes and the source nodes. At 1110, the signal is decoded using maximum-likelihood decoding, such as by using a sphere decoder. At 1115, the original block of data (or portion thereof) transmitted by the source is indicated. The indication can be sent to another system or retransmitted to another network (e.g., the Internet) for further processing.

Turning to FIG. 12, an exemplary non-limiting computing system or operating environment in which the present invention may be implemented is illustrated. One of ordinary skill in the art can appreciate that handheld, portable and other computing devices and computing objects of all kinds are contemplated for use in connection with the present invention, i.e., anywhere that a communications system may be desirably configured. Accordingly, the below general purpose remote computer described below in FIG. 12 is but one example of a computing system in which the present invention may be implemented.

Although not required, the invention can partly be implemented via an operating system, for use by a developer of services for a device or object, and/or included within application software that operates in connection with the component(s) of the invention. Software may be described in the general context of computer-executable instructions, such as program modules, being executed by one or more computers, such as client workstations, servers or other devices. Those skilled in the art will appreciate that the invention may be practiced with other computer system configurations and protocols.

FIG. 12 thus illustrates an example of a suitable computing system environment 1200 in which the invention may be implemented but the computing system environment 1200 is only one example of a suitable computing environment for a media device and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 1200 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 1200.

With reference to FIG. 12, an example of a remote device for implementing the invention includes a general purpose computing device in the form of a computer 1210. Components of computer 1210 may include, but are not limited to, a processing unit 1220, a system memory 1230, and a system bus 1221 that couples various system components including the system memory to the processing unit 1220. The system bus 1221 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.

Computer 1210 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 1210. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes volatile and nonvolatile as well as removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 1210. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.

The system memory 1230 may include computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) and/or random access memory (RAM). A basic input/output system (BIOS), containing the basic routines that help to transfer information between elements within computer 1210, such as during start-up, may be stored in memory 1230. Memory 1230 typically also contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 1220. By way of example, and not limitation, memory 1230 may also include an operating system, application programs, other program modules, and program data.

The computer 1210 may also include other removable/non-removable, volatile/nonvolatile computer storage media. For example, computer 1210 could include a hard disk drive that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive that reads from or writes to a removable, nonvolatile magnetic disk, and/or an optical disk drive that reads from or writes to a removable, nonvolatile optical disk, such as a CD-ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM and the like. A hard disk drive is typically connected to the system bus 1221 through a non-removable memory interface such as an interface, and a magnetic disk drive or optical disk drive is typically connected to the system bus 1221 by a removable memory interface, such as an interface.

A user may enter commands and information into the computer 1210 through input devices. Input devices are often connected to the processing unit 1220 through user input 1240 and associated interface(s) that are coupled to the system bus 1221, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A graphics subsystem may also be connected to the system bus 1221. A monitor or other type of display device is also connected to the system bus 1221 via an interface, such as output interface 1250, which may in turn communicate with video memory. In addition to a monitor, computers may also include other peripheral output devices, which may be connected through output interface 1250.

The computer 1210 operates in a networked or distributed environment using logical connections to one or more other remote computers, such as remote computer 1270, which may in turn have media capabilities different from device 1210. The remote computer 1270 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, or any other remote media consumption or transmission device, and may include any or all of the elements described above relative to the computer 1210. The logical connections depicted in FIG. 12 include a network 1271, such local area network (LAN) or a wide area network (WAN), but may also include other networks/buses. Such networking environments are commonplace in homes, offices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the computer 1210 is connected to the LAN 1271 through a network interface or adapter. When used in a WAN networking environment, the computer 1210 typically includes a communications component, such as a modem, or other means for establishing communications over the WAN, such as the Internet. A communications component, such as a modem, which may be internal or external, may be connected to the system bus 1221 via the user input interface of input 1240, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 1210, or portions thereof, may be stored in a remote memory storage device. It will be appreciated that the network connections shown and described are exemplary and other means of establishing a communications link between the computers may be used.

The present invention has been described herein by way of examples. For the avoidance of doubt, the subject matter disclosed herein is not limited by such examples. In addition, any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs, nor is it meant to preclude equivalent exemplary structures and techniques known to those of ordinary skill in the art. Furthermore, to the extent that the terms “includes,” “has,” “contains,” and other similar words are used in either the detailed description or the claims, for the avoidance of doubt, such terms are intended to be inclusive in a manner similar to the term “comprising” as an open transition word without precluding any additional or other elements.

Various implementations of the invention described herein may have aspects that are wholly in hardware, partly in hardware and partly in software, as well as in software. As used herein, the terms “component,” “system” and the like are likewise intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to being, a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and/or a computer. By way of illustration, both an application running on computer and the computer can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.

Thus, the methods and apparatus of the present invention, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention. In the case of program code execution on programmable computers, the computing device generally includes a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device.

Furthermore, the invention may be described in the general context of computer-executable instructions, such as program modules, executed by one or more components. Generally, program modules include routines, programs, objects, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments. Furthermore, as will be appreciated various portions of the disclosed systems above and methods below may include or consist of artificial intelligence or knowledge or rule based components, sub-components, processes, means, methodologies, or mechanisms (e.g., support vector machines, neural networks, expert systems, Bayesian belief networks, fu6y logic, data fusion engines, classifiers . . . ). Such components, inter alia, can automate certain mechanisms or processes performed thereby to make portions of the systems and methods more adaptive as well as efficient and intelligent.

Additionally, the disclosed subject matter may be implemented as a system, method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer or processor based device to implement aspects detailed herein. The terms “article of manufacture,” “computer program product” or similar terms, where used herein, are intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips . . . ), optical disks (e.g., compact disk (CD), digital versatile disk (DVD) . . . ), smart cards, and flash memory devices (e.g., card, stick). Additionally, it is known that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN).

The aforementioned systems have been described with respect to interaction between several components. It can be appreciated that such systems and components can include those components or specified sub-components, some of the specified components or sub-components, and/or additional components, according to various permutations and combinations of the foregoing. Sub-components can also be implemented as components communicatively coupled to other components rather than included within parent components, e.g., according to a hierarchical arrangement. Additionally, it should be noted that one or more components may be combined into a single component providing aggregate functionality or divided into several separate sub-components, and any one or more middle layers, such as a management layer, may be provided to communicatively couple to such sub-components in order to provide integrated functionality. Any components described herein may also interact with one or more other components not specifically described herein but generally known by those of skill in the art. 

1. A method of transmitting block data in a cooperative wireless network, the method comprising: receiving an indication at a source node of a block of data to send to a destination node in a wireless network; creating a codeword to transmit as a function of the indicated block; transmitting a first part of the created codeword to the destination node and one or more relay nodes in the wireless network during a first time period; and while simultaneously transmitting a second part of the created codeword to the destination node in a second time period, transmitting an amplified signal at each of the one or more relay nodes to the destination node, the amplified signal being a function of the first part of the created codeword as received at the relay node in the first time period and a unique signature vector associated with the relay node.
 2. The method of claim 1 wherein the transmitting of the amplified signal includes transmitting the amplified signal at each of two or more relay nodes.
 3. The method of claim 1 further comprising: receiving one or more signals from one or more of the relay nodes and the source node at the destination node; decoding the signal using maximum likelihood (ML) decoding; and indicating the decoded data from the signal.
 4. The method of claim 1 wherein the decoding of the signal using maximum likelihood decoding includes using a sphere decoder.
 5. The method of claim 1 wherein the transmitting of the amplified signal includes transmitting an amplified component-wise product of the first part of the created codeword as received at the relay node in the first time period and the unique signature vector associated with the relay node.
 6. The method of claim 1 wherein the method is performed multiple times for multiple transmissions of block data.
 7. The method of claim 1 wherein the transmitting of the first part includes transmitting approximately half of the created codeword and the transmitting of the second part includes transmitting approximately the other half of the created codeword.
 8. The method of claim 1 wherein the creating of a codeword to transmit as a function of the indicated block comprises performing a discrete Fourier transform.
 9. The method of claim 1 wherein the transmitting of a first part of the created codeword to the destination node and one or more relay nodes in the wireless network during a first time period includes performing the transmitting at optimal power allocation.
 10. A cooperative wireless network comprising: a source node comprising a codeword creation component that determines a code word to transmit corresponding to a block of data; a signal transmitting component that transmits a signal to each of one or more relay nodes and a destination node; the one or more relay nodes, each comprising a signal receiving component that receives a signal from the source node; a component-wise multiplication component that determines the product of the received signal and a signature vector associated the relay node; a signal transmitting component that transmits an amplified signal based on the determined product simultaneously with other relay nodes; the destination node comprising a signal receiving component that simultaneously receives signals from the source node and the one or more relay nodes; and a maximum likelihood decoding component that decodes the received signal using maximum likelihood decoding.
 11. The cooperative wireless network of claim 10 wherein the source node further comprises a power management component that determines a power level at which to transmit the signal to each of the one or more relay nodes and the destination node and each of the one or more relay nodes further comprising a power management component that determines a power level to transmit the signal to the destination node.
 12. The cooperative wireless network of claim 11 wherein the power management component of the source node determines the optimal power allocation.
 13. The cooperative wireless network of claim 10 wherein the maximum likelihood decoding component utilizes a sphere decoder.
 14. The cooperative wireless network of claim 10 wherein each node of the cooperative wireless network comprises all of the components of a source node, a relay node, and a destination node.
 15. The cooperative wireless network of claim 10 wherein the one or more relay node comprise two or more relay nodes.
 16. A method of relaying data in a cooperative wireless network, the method comprising: for each of multiple relay nodes, receiving a signal from a source node in a cooperative wireless network; determining a new data vector based on the received signal vector and a signature vector of the relay node; and retransmitting the determined data vector simultaneously with the other relay nodes.
 17. The method of claim 16 further comprising for each of the multiple relay nodes, determining a power level to retransmit the signal at and wherein the retransmitting of the determined data vector simultaneously with the other relay nodes is at the determined power level.
 18. The method of claim 16 wherein the retransmitting of the determined data vector simultaneously with the other relay nodes includes retransmitting the determined data vector simultaneously with at least two other relay nodes.
 19. The method of claim 16 wherein the determining of the new data vector based on the received signal vector and a signature vector of the relay node comprises performing component-wise multiplication of the received signal vector and the signature vector.
 20. The method of claim 16 wherein the retransmitting of the determined data vector simultaneously with the other relay nodes includes retransmitting the determined data vector simultaneously with a second signal transmission from the source node. 